﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BL;
using BE;
using System.Data;

namespace UI.DireccionAcademica
{
    public partial class FrmReporteCantidaddeAlumnos : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                llenarComboSemestre();
                llenarComboCiclos();
                Generar();
            }
            {


            }
        }

        private void llenarComboSemestre()
        {
            LabelError.Text = "";
            try
            {
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Periodo> lista = rnc.ObtenerPeriodos();
                comboSemestre.Items.Add("---Todos---");
                comboSemestre.DataSource = lista;
                comboSemestre.DataTextField = "Semestre";
                comboSemestre.DataValueField = "ID";
                comboSemestre.DataBind();
                comboSemestre.Items.Insert(0, "--Todos--");
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }

        }
        private void llenarComboCiclos()
        {
            LabelError.Text = "";
            try
            {
                ReporteNominaComplementaria_BL rnc = new ReporteNominaComplementaria_BL();
                List<Ciclos> lista = rnc.ObtenerCiclos();
                
                comboCiclo.DataSource = lista;
                comboCiclo.DataTextField = "Descripcion";
                comboCiclo.DataValueField = "ID";
                comboCiclo.DataBind();
                comboCiclo.Items.Insert(0, "--Todos--");
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message;
            }

        }


       


        private void Generar() {
            LabelError.Text = "";
            try
            {
                String filtro = "";
                String semestre = comboSemestre.SelectedItem.Text;
                String ciclo = comboCiclo.SelectedValue;

                if (!semestre.Equals("--Todos--"))
                {
                    filtro = " where dm.SEMESTRE='" + semestre + "' ";
                    if (!ciclo.Equals("--Todos--"))
                    {
                        filtro += " and dm.CICLO='" + ciclo + "' ";
                    }
                }
                else if (!ciclo.Equals("--Todos--"))
                {

                    filtro = " where dm.CICLO='" + ciclo + "' ";
                }

                ReporteAlumnosxEspecialidad_BL reporte = new ReporteAlumnosxEspecialidad_BL();
                DataTable listado = reporte.ObtenerListadoAlumnosXEspecialidad(filtro);
                llenarTabla(listado);

            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message.ToString();
            }

        }



        private void llenarTabla(DataTable listado)
        {
            try
            {
                if (listado.Rows.Count == 0)
                {
                    gridListado.Caption = "No se encontro ningun registro";
                }
                else {
                    gridListado.Caption = "Se encontraron " + listado.Rows.Count.ToString() + " registros";
                }


                gridListado.DataSource = listado;
                gridListado.DataBind();
            }
            catch (Exception ex)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('" + "Se produjo el siguiete error :" + ex.Message + "');", true);

            }
        }

        protected void comboSemestre_SelectedIndexChanged(object sender, EventArgs e)
        {
            Generar();
        }

        protected void comboCiclo_SelectedIndexChanged(object sender, EventArgs e)
        {
            Generar();
        }


    }
}